import java.awt.Graphics;
import java.awt.Image;


public class Explosion {

	public Image image;
	public int x, y;
	
	public boolean active;
	
	// image에서 불러온 이미지안에서 나뉘는 이미지들의 갯수
	public int count;
	// 나뉘는 이미지의 넓이
	public int width;
	// 나뉘는 이미지의 높이
	public int height;
	
	// 현재 표시할 나뉘는 이미지의 위치
	private int currentIndex  = -1;
	
	private long prevChangeTime = 0;
	// 숫자가 높을수록 화면이 느리게 보임
	private long changeSpeed = 50;
	
	public Explosion ( Image image, int x, int y, int count ) {
		this.image = image;
		this.x = x;
		this.y = y;
		this.count = count;
		
		width = image.getWidth(null) / count;
		height = image.getHeight(null);
		active = true;
	}
	
	public void update() {
		
		long currentTime = System.currentTimeMillis();
		if ( currentTime - prevChangeTime > changeSpeed ) {
			currentIndex++;
			if ( currentIndex == count ) {
				active = false;
			}
			prevChangeTime = currentTime;
		}
	}
	
	public void render (Graphics g) {
		if ( active ) {
			g.drawImage(image, 
					x, 									// 표시할 화면의 좌상단 x좌표
					y,  								// 표시할 화면의 좌상단 y좌표
					x + width,  						// 표시할 화면의 우하단 x좌표
					y + height,						// 표시할 화면의 우하단 y좌표
					width * currentIndex,			// 원본 이미지에서 잘라낼 영역의 좌상단 x좌표
					0,									// 원본 이미지에서 잘라낼 영역의 좌상단 y좌표
					width * (currentIndex + 1),	// 원본 이미지에서 잘라낼 영역의 우하단 x좌표
					height,							// 원본 이미지에서 잘라낼 영역의 우하단 y좌표
					null);
		}
	}
	
	
}
